package cn.cailin.day07.demo16FileUpload;

import java.net.ServerSocket;
import java.net.Socket;
import java.time.chrono.IsoChronology;

/*
    文件上传案例服务器端:读取客户端上传的文件，保存到服务器的硬盘，给客户端回写“上传成功”

    明确:
        数据源:客户端上传到文件
        目的地:服务器的硬盘

    实现步骤:
        1.创建一个服务器ServerSocket对象，和系统要指定的端口号
        2.使用ServerSocket对象中的方法accept，获取到请求的客户端Socket对象
        3.使用Socket对象中的方法getInputStream，获取到网络字节输入流InputStream对象
        4.判断D:\\upload文件夹是否存在，不存在则创建一个
        5.创建一个本地字节输出流对象FileOutputStream对象，构造方法中绑定要输出的目的地
        6.使用网络字节输入流InputSteam对象中的方法read，读取客户端上传的文件
        7.使用本地字节输出流FileOutputStream对象中的方法write，读取到文件保存到服务器的硬盘上
        8.使用Socket对象中的方法getOutputStream，获取到网络字节输入流OutputStream对象
        9使用网络字节输出流OutputStream对象中的write，给客户端回写“上传成功|”
        10.释放资源

 */
public class TCPServer {
    public static void main(String[] args) {
        //1.创建一个服务器ServerSocket对象，和系统要指定的端口号
        ServerSocket server=new ServerSocket(8888);
        //2.使用ServerSocket对象中的方法accept，获取到请求的客户端Socket对象
        server.accept();
        //3.使用Socket对象中的方法getInputStream，获取到网络字节输入流InputStream对象
        Socket socket=server.accept();
        //4.判断D:\\upload文件夹是否存在，不存在则创建一个
        // 5.创建一个本地字节输出流对象FileOutputStream对象，构造方法中绑定要输出的目的地
        //6.使用网络字节输入流InputSteam对象中的方法read，读取客户端上传的文件
        // 7.使用本地字节输出流FileOutputStream对象中的方法write，读取到文件保存到服务器的硬盘上
        // 8.使用Socket对象中的方法getOutputStream，获取到网络字节输入流OutputStream对象
        //9使用网络字节输出流OutputStream对象中的write，给客户端回写“上传成功|”
        //10.释放资源
    }
}
